package com.jch.sc.future;

import com.jch.sc.msg.Response;

import java.util.concurrent.Future;

/**
 * WriteFuture 继承 Future 接口
 * Future 接口说明：
 *      Future表示异步计算的结果。
 *      提供了检查计算是否完成、等待计算完成以及检索计算结果的方法。
 *      结果只能在计算完成后使用get方法检索，必要时阻塞，直到它准备好。
 *      取消由cancel方法执行。
 *      提供了其他方法来确定任务是正常完成还是被取消。
 *      一旦计算完成，就不能取消计算。
 *      如果为了可取消性而想使用Future但不提供可用结果，则可以声明Future<?>形式的类型并返回null作为底层任务的结果。
 * @param <T>
 */
public interface WriteFuture<T> extends Future<T> {

    Throwable cause();

    void setCause(Throwable cause);

    boolean isWriteSuccess();

    void setWriteResult(boolean result);

    String resultId();

    T response();

    void setResponse(Response response);

    boolean isTimeout();
}
